///////////////////////////////////////////////////////////
//  IGameLogic.as
//  Actionscript 3.0 implementation of Interface IGameLogic
//  owner: http://www.imanit.com/
//  resource page: http://www.scuge.com/ 
//  For Game Architecture or Flash Team Management Consulting contact iman@imanit.com
//  This code is without warranty and is to be used at your own risk.
//  Created on:      06-Dec-2009 5:02:46 PM
//  Original author: iMAN
///////////////////////////////////////////////////////////

package org.gof.state
{
	
	import org.gof.state.IGOState;
	import org.gof.state.IGOInputState;
	import org.gof.state.IGOStatePosition;

	/**
	 * Logic generic to all games in relation to statemanagement or game logic goes in a GameLogic class
	 * GameLogic responsible for incrementing state.
	 * GameLogic can alter GameObject state.
	 * @author iMAN
	 * @version 1.0
	 * @created 06-Dec-2009 5:02:46 PM
	 */
	public interface IGameLogic
	{
		

		/**
		 * adds object to state Manager at a given location.
		 * 
		 * @param name
		 * @param position
		 * @param initialState
		 */
		function addObject(name:String, position:IGOStatePosition, initialState:IGOInputState): IGOState;

		/**
		 * increments state.
		 * 
		 * @param stepSize    size of a step
		 */
		function incrementState(stepSize:Number = 1): void;

		/**
		 * constructor
		 * 
		 * @param fps
		 */
		function IGameLogic(fps:Number): void;

	
	}//end IGameLogic

}